Real time machining process monitoring

ABSTRACT

A pre-process simulation may calculate operating conditions of a machine tool by simulating a NC program and calculate predicted values indicative of the operating conditions. A real time monitoring system may compare actual values from the actual operation of a machine tool actually executing the NC program to the predicted values and determine whether to initiate a response. The operating conditions may be machine tool operating conditions. The comparison of actual values to predicted values may be based on a dynamic limit within which the predicted values fall which may vary based on the tool position, and the dynamic limit may include upper and lower limit boundaries.

TECHNICAL FIELD

The present disclosure relates generally to machine tools. Specificallydisclosed is a method and apparatus which simulates execution of a NCprogram and resultant operating conditions of at least the machine tool,and generates data predictive of the values of such operatingconditions. Also disclosed is a method and apparatus which comparesoperating conditions that exist during actual machining with predictedvalues of the operating conditions.

BACKGROUND

Computer control of a machining system that involves the CAD/CAM basedsupport has been widely accepted to improve productivity and reduceproduction cost. Recently, more intelligent functions have beendeveloped and integrated into CNC machine tools. CAD/CAM provides thefacilities to create and monitor tool paths to use on the workpiece. Insome CAM software programs, machine tools and machine virtualenvironments can be utilized to dynamically simulate the machiningoperations. These dynamic simulations provide NC program generation andverification, material removal analysis and collision detection error.With the process simulation, the tool path can be analyzed and verifiedbefore actually machining the part. It has become easier to machinecomplex parts more accurately and more quickly with the advancement ofsimulation tools. However, in selection of machining strategies, themethods offered by CAM software often are based on the parts'geometrical information with little or no consideration of the machinetool capability or the physics of metal cutting. On the other hand,machine tools (or operators) have limited information about NC programs,hence it is difficult to judge whether machining is performed properly.Running machine tools under undesirable operating conditions can causedamage to tools, the machine tools or workpiece. Operating at, near orover the machine limits, for a short time or over a long period of time,can lead to damage to the tool, the machine tool or workpiece.

Moreover, in practice, operating parameters are still mainly selectedbased on either on machining handbooks and/or tool manufacturer'scatalogues which are typically very conservative and aggressive,respectively. Therefore, it has been difficult to perform the machiningunder an optimal condition, which either leads to low productivity ordeterioration in machining accuracy and surface roughness. Moreover,when the tool is a cutting tool which is engaged in cutting with arapidly increasing cutting load, damage easily occurs to the cuttingtool as well as work material to be machined.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings together with specification, including thedetailed description which follows, serve to explain the principles ofthe present invention.

FIG. 1 is a block diagram according to an aspect of the invention.

FIG. 2 illustrates a flow diagram of a simulation according to one ofthe aspects of the invention and of a method for real time monitoring ofthe machining process according to another of the aspects of theinvention.

FIG. 3 is a flow diagram of an embodiment which could be part of thepre-process simulation of FIG. 2.

FIG. 4 is a flow diagram of an embodiment which could be part of thepre-process simulation of FIG. 2.

FIG. 5 is a flow diagram of an embodiment of the monitoring of FIG. 1.

FIG. 6 is a representation of an exemplary data structure embodiment ofa data file of the pre-process simulation of FIG. 1.

FIG. 7A is a diagrammatic illustration of a prior art method of applyinga limit to measured loads of a machine tool, tool holder or tool.

FIG. 7B is a diagrammatic illustration of a dynamic limit embodiment.

FIG. 8 is a diagrammatic illustration of an embodiment of a processoroperating environment.

DETAILED DESCRIPTION

In the following description, like reference characters designate likeor corresponding parts throughout the several views. Also, in thefollowing description, it is to be understood that terms such as front,back, inside, outside, and the like are words of convenience and are notto be construed as limiting terms. Terminology used in this patent isnot meant to be limiting insofar as devices described herein, orportions thereof, may be attached or utilized in other orientations.Referring in more detail to the drawings, an embodiment constructedaccording to the teachings of the present invention is described.

As used herein, tool refers to any type of tool which may be carried bya tool holder of a machine tool and manipulated by the machine tool toalter the characteristics of a workpiece. Although herein a cutting toolis frequently referenced in describing aspects and/or embodiments of theinvention hereof, as used herein, tool is not limited to any specifictype of tool, and references to cutting tool are to be considered andinterpreted as not limiting the invention hereof to operations of amachine tool involving cutting unless specifically so limited. Althoughcut or cutting can mean the removal of material from a workpiece bymeans of shear deformation, as used herein, cut and cutting is to beconsidered and interpreted as not limiting the invention hereof toremoval of material by means of shear deformation, unless specificallyso indicated, but instead is to be considered and interpreted as anoperation which alters any characteristic of a workpiece. Although aspindle is frequently referenced in describing aspects and/orembodiments of the invention hereof, as used herein, spindle is notlimited to any specific type of tool holder, and references to toolholder are to be considered and interpreted as not limited to anyspecific type of tool holder. To the extent necessary, the disclosure asexplicitly set forth herein supersedes any conflicting materialincorporated herein by reference.

FIG. 1 is block diagram illustrating an aspect of the invention.Starting with NC program 2, simulation 100 may calculate conditionsresulting from the simulated execution of NC program 2. If simulation100 indicates an undesirable condition (i.e., a condition which may leadto an undesirable result) exists, feedback of the analysis of theresults from simulation 100 may be used at 150 to revise NC program 2,and simulation 100 may proceed to simulate revised NC program 2.Simulation 100 may iteratively simulate successive revisions of NCprogram 2 until no undesirable conditions are indicated by simulation100 to exist, and generate data indicative of calculated conditions,which represent the predicted values of those conditions. The latestversion of NC program 2 may actually be executed by a machine toolcontroller to cause the machine tool to machine a workpiece. Duringoperation of a machine tool, information regarding the actual operatingconditions existing during machining of the workpiece may be evaluatedin real time by real time monitoring system 200 relative to predictedvalues, which may have been calculated by simulation 100. If the actualoperating conditions are not within an acceptable range of the predictedvalues, feedback data indicative thereof may be generated at 250, andthe machining may be interrupted.

Referring to FIG. 2, two flow diagrams illustrate pre-process simulation100 according to one of the aspects of the invention and real timemonitoring system 200 according to another of the aspects of theinvention. Although pre-process simulation 100 and monitoring system 200are illustrated in conjunction with each other, either simulation 100 ormonitoring system 200 may be practiced independent of the other.Pre-process simulation 100 simulates the execution of an NC program in avirtual environment in which a machine tool operates the toolsdesignated in the NC program to follow a tool path, including feedrates, tool angles, etc. Pre-process simulation 100 may model thecutting path and relevant conditions, such as the feed rates, spindlespeeds and depth of cut, based on tool attributes such as tool kind,size and geometry and on material composition, and calculate thegeometrical material to be removed. Pre-process simulation 100 mayidentify simulated operating conditions which may lead to undesirableresults so that the NC program is or may be revised to reduce oreliminate the potential for such undesirable results, and may calculatepredicted values for certain operating conditions based on thesimulation of a final revision of the NC program for which pre-processsimulation 100 does not identify conditions which may lead toundesirable results. Such predicted values may be provided to real timemonitoring system 200 and the revision of the NC program may be providedto the machine tool controller. As FIGS. 2 and 5 illustrate, datagenerated by pre-process simulation 100 may be passed to real timemonitoring system 200, and the final revision of the NC program may beloaded into machine tool controller 300. Real time monitoring system 200may be executed real time in conjunction with the actual in-processmachining of a workpiece on the machine tool, compare the predictedvalues with the actual values from the actual machining, and respondbased on that comparison.

As illustrated in FIG. 2, NC program 102 is provided to pre-processsimulation 100. NC program 102 may be of any origin, such as may begenerated in whole or in part by a CAD/CAM system or created in whole orin part manually. As indicated at 104, pre-process simulation 100 may beinitialized for the particular computing environment, and loaded withdata relevant to the actual machine tool, tool, work piece and finalpart, such as, but not limited to, tool attributes such as for exampletool shape, diameter, number of flutes, helix angle, etc., which may beorganized in a predefined table of tool geometries; machine toolattributes such as, but not limited to, axis configuration, spindletorque-power curve, axis stroke, etc.; workpiece attributes such as, butnot limited to, stock material shape, material properties, and materialspecific cutting pressure coefficients; and final part configurationsuch as, but not limited to, in the form of a solid model.Initialization of pre-process simulation 100 may occur only asneeded—not necessarily every time pre-process simulation 100 isexecuted. Relevant data may be inputted in any manner at any time, suchas some data inputted by the end user at the time of simulation. Somerelevant data may be selectable by an end user through drop down lists.

In the embodiment depicted, pre-process simulation 100 simulates themachining process based on the NC program, motion step by motion step.The simulation and associated calculations to model the execution ofeach motion step of the NC program is represented at step 106. For eachmotion step of the NC program, pre-process simulation 100 may calculatemachining conditions for the current motion step. As used herein, motionstep refers to a change of the position of the tool relative to theworkpiece. The motion step resolution of pre-process simulation 100 maybe set during step 104. Machining conditions comprise informationrelevant to the subsequent calculation at step 108 of operatingconditions which may lead to undesirable results, such as damage to thetool, the machine tool or workpiece, or inaccuracy of the machiningprocess. At step 106, pre-process simulation 100 may calculate thevolume of material removed and the cutting tool-material contact areabased on the geometrical Boolean operation. Based on the calculatedmaterial removal and contact area, simulation 100 may calculate theaxial depth of cut and width of cut. The chip load for each flute of thetool may also be calculated based on attributes of the motion step ofthe NC program being simulated, such as operational attributes such asfeed rate and spindle speed and such as tool attributes such as thenumber of flutes of the cutting tool. The radial engagement may becalculated based on the cutting tool diameter. Simulation of an NCprogram in this manner is well known in the art, and can be implementedby any of several commercially available existing CAM simulationprograms including for example Vericut Optipath software available fromCGTech.

In the embodiment depicted, as illustrated in FIG. 2, after thesimulation of machining conditions for the current motion step at step106, simulation 100, at step 108, may calculate values of one or moreoperating conditions which could lead to undesirable results, such asresult in damage to cutting tools, the machine tool or the workpiece ifthe machine tool were to continue to operate at or above that value.Such operating conditions include tool operating conditions and/ormachine tool operating conditions, which may include but are not limitedto any of cutting forces, spindle power, radial load at the spindle(e.g., at the spindle bearings), tool deflection, bending moment on thetool, bending moment on the spindle or at the spindle interface, cuttingtorque at the tool holder/spindle interface, temperature of the tool,load on one or more of the machine tool axes servos. Such operatingconditions may be based on one or more machining conditions of thecurrent motion step simulated at step 106 as described above. In anembodiment, information relevant to the subsequent calculation ofoperating conditions may be simulated at step 106 by an existing programand relevant data extracted to form the basis for the calculation atstep 108. Each of the calculations at step 108 may be considered apredicted value of each such respective operating condition of thespecific motion step which is being simulated, and is also referred toherein as predicted value.

At step 110, simulation 100 determines, for the current motion step,whether any predicted value calculated at step 108 exceeds a limit,which may be a predetermined limit, which is relevant to that operatingcondition. In more general terms, simulation 100 makes a determinationfor the current motion step whether to continue the simulation of the NCprogram in its then current form based on whether an assessment of oneor more predicted values relative to predetermined criteria indicates anundesirable operating condition, such as an operating condition thatwill or might lead to damage to the tool, the machine tool or workpiece,or lead to inaccuracy of the machining process. Such an assessment may,for example, be a comparison of the predicted values to machine toolspecifications (e.g., power and torque limits), thrust force limit forone or more drive axis and cutting tool limits, such as but not limitedto cutting tool's characteristic temperature below which the cuttingtool material can maintain its mechanical strength, and workpieceattributes. Such assessment may include whether the respective predictedvalues are outside of respective predetermined tolerances of the limit.

If the predicted values for the current motion step are consideredacceptable relative to the relevant limits plus any tolerances,simulation 100 may proceed to step 112, where simulation 100 mayconsider whether all motion steps have been analyzed, and if all motionssteps have not been analyzed, may proceed to the next motion step,returning to step 106 to repeat steps 106, 108 and 110 for the nextmotion step. Once all motion steps have been analyzed, simulation 100may proceed to step 114 from step 112 and create a data file containingthe predicted values for each motion step. The data file may have anysuitable structure.

If, at step 110, it is determined that simulation of the NC program inits current form should not continue, revision to the NC program may benecessary for one or more motion steps. Such revision may be necessaryfor the current motion step, may be necessary for one or more previousmotion steps, and/or may be necessary for one or more subsequent motionsteps.

Simulation 100 may create such revision to the NC program automaticallyat step 116, proceeding from step 110 to step 116 as indicated by thedashed line. For example, simulation 100 may reduce the feed rate.Simulation 100 may then return to an appropriate step of simulation 100.For example, if at step 116 no revisions were implemented that affectedone or more motion steps prior to the current motion step, thensimulation 100 may proceed to step 106 and proceed with the simulationbeginning at the revised current motion step. If at step 116, one ormore motion steps prior to the current motion step is revised,simulation 100 may proceed to step 106 and proceed with the simulationbeginning at an appropriate motion step such as, for example, theearliest revised motion step, or simulation 100 may proceed to anearlier step in the simulation, such as for re-initialization, datainput, etc. Simulation 100 may proceed to step 106 and proceed at thefirst motion step regardless of what motion steps were revised. If therevision required a change in initialization or data input at step 104,simulation 100 may proceed to step 104.

Alternately, simulation 100 may not automatically create a revision tothe NC program. If not, then simulation 100, proceeding from step 110 tostep 118 as indicated by the dashed line, may stop the simulation andprovide an output indicating that simulation 100 determined thatcontinuation of the simulation of the NC program in its current formshould not continue. Such output may be in humanly perceptible form,such as an audible or a visual alarm, a pop up notice on a screen, etc.or may be in a form usable by system responsive to the form of theoutput. Revision to the NC program may be created, such as by aprogrammer, and simulation 100 restarted or resumed at an appropriatestep.

Alternately, simulation 100 may provide, following a yes at step 110,for proceeding to step 116 under certain circumstances and proceeding tostep 118 under other circumstances.

It is noted that if there are any revisions to the NC program followingstep 110, simulation 100 simulates, at some point, all or part of therevised NC program. It is also noted that the embodiment of simulation100 depicted is but one way in which predicted values may be calculatedbased on an NC program. For example, step 106 could be executed forevery motion step, followed by executing steps 108 and 110 for everymotion step, or executing step 108 for every motion step then proceedingto step 110 for every motion step and reporting every condition thatexceeds a predetermined limit.

FIG. 3 illustrates an embodiment which could comprise step 108 ofpre-process simulation 100. Following step 106 as described above, atstep 120 the cutting forces and temperature may be calculated for thecurrent motion step. At step 122, for each motion step, the power andtorque limit of the machine tool is calculated based on the spindlerotation speed for the current motion step. At step 124, the bendingmoment and torsional torque applied to the tool holder/spindle interfaceare calculated. These may be calculated, for example, based on thecalculated load and gauge length of the cutting tool.

FIG. 4 illustrates an embodiment which could comprise steps executed aspart of step 108. A cutting tool may have one or more cutting edges,each referred to herein as a flute. The cutting load is distributedalong each cutting edge that engages material in a motion step, alongthe portion of the cutting edge which is engaged with material. Thecutting load and temperature may be calculated by analyzing smallsections along each cutting edge. For each such small section, thecutting load and temperature may be calculated based on the chip load,cutting speed, radial engagement, cutting tool geometry and workmaterial properties for that small section. FIG. 4 indicates at 130 thatfor each motion step, each flute may be analyzed. At 132, it isindicated that for each such flute, each small section along the flutemay be analyzed. At step 134 it may be determined whether the currentsection is engaged in cutting. If it is not engaged, the analysis mayproceed to the next section indicated by 138. If the current section isengaged in cutting, at step 136, the temperature and force, such as atthe spindle interface or the tool, for the section may be calculated. At138, the analysis may proceed to the next small section of the currentflute, and loop back to step 132 to repeat the process until all smallsections of the current flute have been considered. After all smallsections have been considered, the cutting forces and temperature forthe flute may be calculated and stored at step 140. The force for theflute may be the sum of the forces calculated for each section. Thetemperature may be the maximum temperature calculated for any section ofthe flute. Alternately, forces could be summed and temperatures comparedwith each pass through the loop for each section. If not all flutes ofthe current motion step have been considered, the analysis may proceedto the next flute that engages material during the current motion stepat 142. After all flutes of the current motion step have beenconsidered, the forces and temperature may be calculated at 144 for themotion step. Temperature may be calculated based only on or for only themaximum chip load during the motion step. The temperature for thecurrent motion step may be the highest temperature calculated during theanalysis described in this paragraph. Alternatively, forces could besummed and temperatures compared with each pass through the loop foreach flute.

Calculation of temperature may be done using any methods known in theart. As is known, once shear and friction forces are known from forcecalculations, shearing power and friction power may be calculated withthese two forces times shear velocity and chip flow speed, respectively.The shear plane temperature may be calculated based on the assumptionthat all shearing power is converted to heat, which may be doneaccording to the formula

$\begin{matrix}{{T_{s} - T_{r}} = {\frac{F_{s}v_{s}}{{bhv}\; \rho \; c} = {\frac{K_{C}\cos \; \theta}{\cos ( {\theta - \varphi} )}\frac{\cos \; \alpha}{\cos ( {\varphi - \alpha} )}\frac{1}{\rho \; c}}}} & (1)\end{matrix}$

-   -   where: T_(s) is the shear plane temperature        -   T_(r) is the reference room temperature        -   F_(s) is shear force        -   ν_(s) is shear velocity        -   b is chip width        -   h is chip thickness        -   ν is cutting speed        -   ρ is density of the work material        -   c is the specific heat        -   K_(C) is the specific cutting pressure,        -   α is rake angle        -   ϕ is the shear angle        -   θ is the angle made by resultant force and shear plane            All of these parameters can be obtained from the force            calculation. Once the shear plane temperature is known, the            temperature field along the tool-chip interface can be            calculated.

Returning to FIG. 2, monitoring system 200 is also referred to herein asreal time monitoring system 200 in that monitoring process 200 may beexecuted in conjunction with the real time actual in-process machiningof the workpiece on the machine tool. When a proved NC program andpredicted values of conditions which would not lead to undesirableresults such as result in damage to cutting tools, the machine tool orthe workpiece for each motion step of the NC program, are available,such as from pre-process simulation 100, real time monitoring 200 may beexecuted simultaneously with the actual machining of the part. It isnoted that the proved NC program and predicted values for each motionstep do not have to come from execution of pre-process simulation 100.

After predicted values correlated to the motion steps have been inputtedand sorted into a data dictionary (see FIG. 5), and the NC program isloaded into the machine tool (see FIG. 5), at 202 the current positionof the tool is received into real time monitoring system 200 from themachine tool. At 204, that position may be synchronized with the datafile, by associating that position with a data point in the datadictionary. At 206, the actual (real time) values of the operatingconditions corresponding to the predicted values (which may be obtainedby measurement by sensors on the machine tool or by calculations basedon such sensors as in the case of bending moment for example), such asforces and temperature, which are passed to real time monitoring system200 from the machine tool, may be compared to the predicted valuesassociated with the motion step corresponding to the current position ofthe tool. As used herein, “actual value” and “actual values” refer tothe values of the operating conditions, such as but not limited tocutting loads and temperatures, that actually exist respectively for themachine tool and/or the tool, as directly or indirectly sensed or ascalculated based on one or more sensors. Real time monitoring system 200considers such actual values that correspond to predicted values. At208, real time monitoring system 200 may determine whether all of thespecific actual values are within a dynamic limit of the predictedvalue, such as 15%. If all are, then at 210 real time monitoring system200 may consider whether the actual machining process is finished. Ifthe actual machining process is not finished, real time monitoringsystem 200 may return to 202 and get the new current position from themachine tool and repeat the simulation. If the process is finished, thenreal time monitoring system 200 may end at 212, and all measured datamay be saved, in any form such as a log file, which may be used asreference data for subsequent machining of the same part.

It may be determined at 208 that the actual values not are not withinthe dynamic limit of the predicted values, such as being higher than theupper value of the dynamic limit or being lower than the lower value ofthe dynamic limit. Actual values which are lower than the lower value ofthe dynamic limit may be indicative of a problem, such as a broken ormissing tool, and real time monitoring system 200 may proceed to step216 and output an alarm and/or a warning message, and may stop themachine waiting for user input.

In the case that any of the actual values are higher than the uppervalue of the dynamic limit, monitoring system 200 may proceed to step214 and adjust the tool feed rate with the goal of lowering subsequentactual values to lower than the upper value of the dynamic limit.Monitoring system 200 may provide an alarm or notice, such as a pop upmessage on a screen, to indicate that action was taken at step 214.Monitoring system 200 may then proceed to step 202.

Monitoring system 200 may allow actual values of an operating conditionto exceed its upper value of the dynamic limit or to be lower than itslower value of the dynamic limit for the then current position for apredetermined period of time. For example, following an adjustment tothe feed rate at step 214, monitoring system 200 may execute the loop202-204-206-208-214-202 for a period of time, which may be apredetermined period of time, even though the actual value that promptedthe first tool feed rate adjustment in the chain is not lower than theupper value of the dynamic limit. During such a period of time, in oneembodiment, monitoring system 200 may not make an adjustment, reachingstep 202 after step 208 without making an adjustment to the tool feedrate, whether the actual value of an operating condition is higher thanthe upper value or is lower than the lower value of the dynamic limit.

Alternately, monitoring system 200 may not automatically make such anadjustment to the feed rate. For example, monitoring system 200 mayproceed to step 216, and an alarm and/or warning message may beoutputted, such as a pop up message on a screen, and stop the machiningprocess waiting for user input. In one embodiment, monitoring system 200may not stop the machining process at step 216, but proceed to step 202,allowing the actual values of an operating condition to exceed its uppervalue of the dynamic limit or to be less than the lower value of thedynamic limit for the then current position for a predetermined periodof time, similar to as described in the preceding paragraph.

FIG. 5 diagrammatically illustrates an embodiment of monitoring system200 and interaction with machine tool controller 300. The proved NCprogram may be loaded into the machine tool controller 300 at 302 andmay be executed to cause the machine tool to machine the part. The datafile with the predicted values correlated to the motion steps of the NCprogram may be inputted and sorted into a data dictionary at 220. As themachine tool operates to machine a part, machine tool controller 300 maysend data at 304 which is received by real time monitoring system 200 at222. The data may include the current position of the tool and actualvalues of operating conditions corresponding to the predicted values. At224 monitoring system 200 may search for a data point in the datadictionary that is the closest point to the current cutting toolposition received from machine tool controller 300. If the distancebetween the current position and a point is determined at step 226 to bewithin a tolerance range, such as within the motion step resolution ofsimulation 100, a matching point is considered found. At 228 real timemonitoring system 200 may visualize the actual values, the predictedvalues and the threshold range vs. the machining time. (An example of asimulation output comparison is illustrated in FIG. 7B, discussedbelow.) At 230, real time monitoring system 200 determines whether theactual values are within the dynamic limit. If the actual values are notwithin the dynamic limit, such as exceeding the upper value of thedynamic limit, at 232 a command may be sent to machine tool controller300 to adjust the tool feed rate and/or set an alarm at 306. The feedrate change may be determined based on the ratio of the actual value topredicted value of the particular operating condition, so as to bringthe actual value within the dynamic limit. The feed rate change may beimplemented by machine tool controller 300 and the machining process maycontinue. If the actual values do not fall within the dynamic limitwithin a predetermined time period, for example five seconds, then thecommand given at 232 at the expiration of the predetermined time may beto stop the machining process. The predetermined time period could, forexample, be zero seconds, in which case the command is givenimmediately. If the actual values are within the dynamic limit at 230,real time monitoring system 200 may determine at 234 whether it is atthe end of the NC program, and return to step 222 if it is not. When theend of NC program is reached, monitoring system 200 may save allmeasured data as a file (see step 212) at 236, and stop at 238.

If the distance between the current cutting tool position and theclosest data point considered at step 226 is not within the tolerancerange, such as within the motion step resolution of simulation 100, theclosest data point may not be considered a matching point at step 226,indicating a matching point is not found. If a matching point is notfound at 226, which may mean for example a tool change command is beingexecuted by machine tool controller 300 or the cutting tool is notengaged in cutting, a zero output may be made at 240 and real timemonitoring system 200 may proceed to 234, without feedback to machinetool controller 300.

FIG. 6 illustrates an embodiment of a data structure of the data fileoutputted by pre-process simulation 100. FIG. 6 illustrates dataorganized as a data dictionary with Program ID, sequence number,associated tool position, and the cutting loads and temperatures. When amatching point to the data point sent from machine tool controller 300to real time monitoring system 200 is searched, or synchronized asreferenced at 204, it is searched in the data dictionary by matching theprogram ID and sequencing number. Then the matching data point isobtained by finding the closest point to the current cutting toolposition.

FIG. 7A illustrates a prior art method of setting an alarm limit formonitoring actual values, such as cutting loads, spindle power and axisloads of a machine tool during actual machining. A fixed upper alarmlimit is set based on the maximum allowable value for the specificoperating condition being monitored.

FIG. 7B illustrates an embodiment of an aspect of this invention, whichmay be practiced in conjunction with any embodiments discussed above, orcompletely separate therefrom. Shown in FIG. 7B is a dynamic limitenvelope 400 which has an upper value, or upper limit boundary, 400U anda lower limit boundary 400L. A measured cutting load is represented byline 402, with the horizontal axis representing time. For each positionof the cutting tool, there is a respective unique upper and lower limitfor the load being monitored. For example, at point 404 whichcorresponds to an actual position of the tool during the machiningprocess, there is an upper limit 404U and a lower limit 404L. If, whenthe tool is at the position corresponding to point 404, the load exceedsthe value of upper limit 404U, an action will be initiated, such assetting an alarm or reducing feed rate. If the load is under 404L, sucha condition may indicate an undesirable situation such as a broken tool,and an action may be taken. If the tool is at a position correspondingto point 406, the actual loading is higher than the lower limit 406L,but lower than the upper limit 406U for point 406, and no alarm oraction will be initiated. Point 408 indicates that the measured load ishigher than dynamic limit 400.

The upper and lower limits for each respective point may be determinedin any suitable manner, such as, but limited to, based on a predictedvalue for the operating condition which may be determined through asimulation embodiment described herein, plus or minus a tolerance. Or,the predicted value for the operating condition for each position may bedetermined by any other methodology, and, in combination with a dynamiclimit range, be used to set a dynamic limit for actual machining. FIG.7B also illustrates an additional aspect of this embodiment, which maybe incorporated with this embodiment, the display of the dynamic limitrange of the machine tool, tool holder and/or tool for a period of timeinto the future.

FIG. 8 illustrates an operating environment in which various embodimentsand aspects of the disclosed technology can be deployed. The operatingenvironment illustrated in FIG. 8 of machining system 800 includesmachine tool 802, machine tool controller 804, and system 806. Inoperation, machine tool controller 804 may use its processor 808 toexecute various programs stored in its memory 810, such as an NC program812 and real time monitoring program or system 814. As set forth herein,this may include machine tool controller 804 generating instructions forcontrolling operation of machine tool 802 based on NC program 812, andreceiving information on the operation of machine tool 802, such asactual operating conditions, which may measured by sensors (not shown inFIG. 8) on or near machine tool 802. This information may then be usedby real time monitoring program 814 as described above, to determine ifsome type of action should be taken based on the operating conditionsbeing outside of a predetermined acceptable dynamic limit rangeassociated with the motion step in NC program 812 which has been matchedto the then current position of the tool. Then, in the event that actionwas to be taken, real time monitoring program 814 may implement thataction either independently (e.g., by causing an alert to be presentedto a user) or in combination with one or more other programs (e.g., byacting as a hypervisor and stopping or altering the operation of NCprogram 812 on a previously created virtual machine tool controllerinstance). System 806 may operate in a similar manner, with itsprocessor 816 executing programs stored in its memory 818, such aspre-process simulation 820 which would function as described above:Pre-process simulation 820 may itself simulate an NC program, or mayextract relevant data from execution of NC simulation 822. Predictedvalues calculated by pre-process simulation 820 may be calculatedpredicted values which may be provided to real time monitoring 814.

In an operating environment such as shown in FIG. 8, the depictedcomponents and programs could be implemented in, and interact with, eachother in a variety of different types of hardware which could be used toimplement the various illustrated components. For example, processorssuch as illustrated in FIG. 8 could be implemented usingmicroprocessors, microcontrollers, digital signal processors (DSPs),field programmable gate arrays (FPGAs), programmable logic devices(PLDs), programmable logic controllers (PLCs), state machines, gatedlogic, discrete hardware circuits, and other suitable hardwareconfigured to perform the various functionality described throughoutthis disclosure. Similarly, a program such as the pre-process simulation820 or real time monitoring program 814 may take actions which wouldinfluence the operation of an NC program or simulation in a variety ofways in addition to (or as an alternative to) acting as a hypervisor.For example, a monitoring program could implement a remedial actionusing a parallel communication path, such as real time monitoringprogram 814 causing a command to be sent to the machine tool 802 whichwould override (e.g., a command to shut down) or modify the impact of(e.g., a command to slow down or pause for a set period of time) thecommands based on NC program 812. As another alternative, a monitoringprogram could integrate execution of another program into its ownoperation (e.g., by a pre-process simulation 820 invoking simulationprogram 822 from its own code by means of API calls), which would allowit direct control over the integrated program's execution. Otherapproaches for allowing actions by a monitoring program to influenceoperation of another program (e.g., messages from the monitoring programbeing treated as interrupts by the device which is executing it) arealso possible.

Variations on the operating environment of FIG. 8 are also possible. Forexample, while FIG. 8 illustrates real time monitoring program 814 andNC program 812 both being executed by machine tool controller 804, insome embodiments these programs could be executed on physically distinctdevices, with the device executing real time monitoring program 814receiving information on machine tool 802 either indirectly throughmachine tool controller 804, or directly via a separate connection withmachine tool 802 itself. Other variations are also possible, such asembodiments in which various programs are be executed on multi-processorsystems rather than single processor systems as shown in FIG. 8, andembodiments which use different types of memories to store theillustrated programs (e.g., optical media, magnetic media, RAID arrays,removable drives, etc.). Accordingly, the operating environment of FIG.8 and the accompanying description should be understood as beingillustrative only, and should not be treated as implying limitations onthe protection provided by this document or any other document whichrelies in whole or in part on this disclosure.

In accordance with various aspects of the disclosure, an element, or anyportion of an element, or any combination of elements may be implementedwith a “processing system” that includes one or more physical devicescomprising processors. Examples of processors include microprocessors,microcontrollers, digital signal processors (DSPs), field programmablegate arrays (FPGAs), programmable logic devices (PLDs), programmablelogic controllers (PLCs), state machines, gated logic, discrete hardwarecircuits, and other suitable hardware configured to perform the variousfunctionality described throughout this disclosure. One or moreprocessors in the processing system may execute processor-executableinstructions. A processing system that executes instructions to effect aresult is a processing system which is configured to perform taskscausing the result, such as by providing instructions to one or morecomponents of the processing system which would cause those componentsto perform acts which, either on their own or in combination with otheracts performed by other components of the processing system would causethe result. Software shall be construed broadly to mean instructions,instruction sets, code, code segments, program code, programs,subprograms, software modules, applications, software applications,software packages, routines, subroutines, objects, executables, threadsof execution, procedures, functions, etc., whether referred to assoftware, firmware, middleware, microcode, hardware descriptionlanguage, or otherwise. The software may reside on a computer-readablemedium. The computer-readable medium may be a non-transitorycomputer-readable medium. Computer-readable medium includes, by way ofexample, a magnetic storage device (e.g., hard disk, floppy disk,magnetic strip), an optical disk (e.g., compact disk (CD), digitalversatile disk (DVD)), a smart card, a flash memory device (e.g., card,stick, key drive), random access memory (RAM), read only memory (ROM),programmable ROM (PROM), erasable PROM (EPROM), electrically erasablePROM (EEPROM), a register, a removable disk, and any other suitablemedium for storing software and/or instructions that may be accessed andread by a computer. The computer-readable medium may be resident in theprocessing system, external to the processing system, or distributedacross multiple entities including the processing system. Thecomputer-readable medium may be embodied in a computer-program product.By way of example, a computer-program product may include acomputer-readable medium in packaging materials. Those skilled in theart will recognize how best to implement the described functionalitypresented throughout this disclosure depending on the particularapplication and the overall design constraints imposed on the overallsystem.

Explicit Definitions

“Based on” means that something is determined at least in part by thething that it is indicated as being “based on.” When something iscompletely determined by a thing, it will be described as being “basedexclusively on” the thing.

“Processor” means devices which can be configured to perform the variousfunctionality set forth in this disclosure, either individually or incombination with other devices. Examples of “processors” includemicroprocessors, microcontrollers, digital signal processors (DSPs),field programmable gate arrays (FPGAs), programmable logic devices(PLDs), programmable logic controllers (PLCs), state machines, gatedlogic, and discrete hardware circuits. The phrase “processing system” isused to refer to one or more processors, which may be included in asingle device, or distributed among multiple physical devices.

“Instructions” means data which can be used to specify physical orlogical operations which can be performed by a processor. Instructionsshould be interpreted broadly to include, code, code segments, programcode, programs, subprograms, software modules, applications, softwareapplications, software packages, routines, subroutines, objects, dynamiclinked libraries, executables, threads of execution, procedures,functions, hardware description language, middleware, etc., whetherencoded in software, firmware, hardware, microcode, or otherwise.

A statement that a processing system is “configured” to perform one ormore acts means that the processing system includes data (which mayinclude instructions) which can be used in performing the specific actsthe processing system is “configured” to do. For example, in the case ofa computer (a type of “processing system”) installing Microsoft WORD ona computer “configures” that computer to function as a word processor,which it does using the instructions for Microsoft WORD in combinationwith other inputs, such as an operating system, and various peripherals(e.g., a keyboard, monitor, etc.).

The foregoing description has been presented for purposes ofillustration and description of this invention. It is not intended to beexhaustive or to limit the invention to the precise form disclosed.Examples given, such as involving the use of phrases such as “forexample”, “by way of example” and “an example”, are to be interpreted asnon-limiting. Obvious modifications or variations are possible in lightof the above teachings. The embodiment was chosen and described in orderto best illustrate the principles of the invention and their practicalapplication to thereby enable one of ordinary skill in the art toutilize the invention in various embodiments and forms, and with variousmodifications as are suited to the particular use contemplated. Althoughonly a limited number of embodiments is explained in detail, it is to beunderstood that the invention is not limited in its scope to the detailsof construction and arrangement of components set forth in the precedingdescription or illustrated in the drawings. The innovation is capable ofbeing practiced or carried out in various ways and in various forms andother embodiments. Also specific terminology was used for the sake ofclarity. It is to be understood that each specific term includes alltechnical equivalents which operate in a similar manner to accomplish asimilar purpose. It is intended that the scope of the invention bedefined by the claims submitted herewith.

1. A machining system comprising a machine tool and a monitoring system,a. the machine tool configured: i. to move a tool carried by the machinetool along a tool path, the tool path comprising a plurality ofsequential tool positions; ii. to provide, to the monitoring system, foreach respective tool position of a plurality of the plurality ofsequential tool positions a respective actual value of each of at leastone operating condition resulting from operation of the machine tool atthat respective tool position; and b. the monitoring system configuredto compare each respective actual value of a plurality of the respectiveactual values to a respective predicted value of the at least oneoperating condition that corresponds to that respective tool position ofthe respective actual value.
 2. The machining system of claim 1, whereinthe respective predicted value has an associated tool position, and themonitoring system is configured to select the respective predicted valueby comparing the respective tool position to the associated toolposition.
 3. The machining system of claim 1, wherein the respectivepredicted value has an associated tool position, and the monitoringsystem is configured to select the respective predicted value byselecting the respective predicted value of the associated tool positionthat is within a tolerance range of the respective tool position.
 4. Themachining system of claim 1, wherein the respective predicted value hasan associated tool position, and the monitoring system is configured toselect the respective predicted value by selecting the respectivepredicted value of the associated tool position that is the closest tothe respective tool position.
 5. The machining system of claim 1,wherein the plurality of sequential tool positions are consecutive toolpositions.
 6. The machining system of claim 1, wherein the machine toolis configured to move the tool along the tool path by execution of aprogram comprising a plurality of respective motion steps, each toolposition of a plurality of the plurality of sequential tool positionscorresponding to a respective motion step.
 7. The machining system ofclaim 1, wherein the monitoring system is configured to send a commandto the machine tool if any respective actual value falls outside of arange which contains the respective predicted value.
 8. The machiningsystem of claim 1, comprising a computer configured to calculate aplurality of the predicted values value by simulating operation of themachine tool.
 9. The machining system of claim 1, wherein the monitoringsystem is configured to compare a plurality of the respective actualvalues to respective predicted values that do not correspond to arespective tool position.
 10. A method of operating a machine tool, themethod comprising: a. moving a tool carried by the machine tool along atool path, the tool path comprising a plurality of sequential toolpositions; b. comparing a respective actual value of each of at leastone respective operating condition experienced by said machine toolduring operation of the machine tool at each respective tool position ofa plurality of the plurality of sequential tool positions to arespective predicted value of the at least one operating condition thatcorresponds to that respective tool position of the respective actualvalue.
 11. The method of claim 10, wherein the respective predictedvalue has an associated tool position, and wherein the step of comparingcomprises selecting the respective predicted value by comparing theassociated tool position to the respective tool position.
 12. The methodof claim 10, wherein the respective predicted value has an associatedtool position, and wherein the step of comparing comprises selecting therespective predicted value of the associated tool position that iswithin a tolerance range of the respective tool position.
 13. The methodof claim 10, wherein the respective predicted value has an associatedtool position, and wherein the step of comparing comprises selecting therespective predicted value of the associated tool position that isclosest to the respective tool position.
 14. The method of claim 10,wherein the step of moving a tool along a tool path comprises executinga plurality of motion steps corresponding to a NC program, eachrespective tool position corresponding to a respective motion step. 15.The method of claim 10, wherein the step of comparing comprisescomparing a plurality of the respective actual values to respectivepredicted values that do not correspond to a respective tool position.16. The method of claim 10, comprising calculating each respectivepredicted value by simulating operation of the machine tool.
 17. Themethod of claim 10, wherein the step of moving a tool comprisesexecuting a program which comprises a plurality of motion steps, andcomprising calculating each respective predicted value by simulatingexecution of the plurality of motion steps.
 18. The method of claim 10,wherein the step of comparing comprises comparing the at least onerespective actual value to a respective range containing the respectivepredicted value.
 19. The method of claim 10, comprising sending acommand to the machine tool if any respective actual value falls outsideof a range which contains the respective predicted value.
 20. The methodof claim 19, comprising implementing a remedial action in response to acommand.
 21. The method of claim 10, wherein the respective operatingcondition comprises machine tool operating condition.
 22. The method ofclaim 10, wherein the respective operating condition is selected fromthe group consisting of radial load on a tool holder of the machinetool, bending moment on the tool holder, bending moment at the toolholder/spindle interface, spindle power, torque of the machine tool,load on one or more axis servo of the machine tool and temperature ofthe tool.
 23. A method of simulating operation of a machine tool, themethod comprising: a. simulating execution of a plurality of motionsteps corresponding to a NC program; and b. for at least one respectivesimulated operating condition corresponding to each respective one of aplurality of the plurality of motion steps, calculating at least onerespective predicted value for each of the at least one simulatedoperating condition, wherein at least one of the simulated operatingconditions comprises a simulated machine tool operating condition. 24.The method of claim 23, wherein the step of simulating execution of aplurality of motion steps is executed in a sequence of one motion stepat a time and the step of calculating at least one respective predictedvalue is executed for one of the plurality of motion steps beforeproceeding to the next motion step of the sequence.
 25. The method ofclaim 23, comprising for each motion step simulated the step ofdetermining whether any predicted value for that motion step exceeds alimit which is relevant to the simulated operating condition of thatpredicted value.
 26. The method of claim 23, comprising revising the NCprogram if any predicted value exceeds the limit.
 27. The method ofclaim 23, wherein the simulated machine tool operating condition isselected from the group consisting of simulated radial load on a toolholder of the machine tool, simulated bending moment on the tool holder,simulated bending moment at the tool holder/spindle interface, simulatedtorque of the machine tool, and simulated load on one or more axis servoof the machine tool.
 28. A machine comprising a computer configured to:a. simulate operation of a machine tool by modeling the execution of aplurality of motion steps corresponding to a NC program; b. for at leastone respective simulated operating condition corresponding to eachrespective one of a plurality of the plurality of motion steps,calculate at least one respective predicted value for each of the atleast one respective simulated operating condition, wherein at least oneof the simulated operation conditions comprises a simulated machine tooloperation condition.